package com.edu.scnu.element;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.ImageIcon;

import com.edu.scnu.manager.GameLoad;
import com.edu.scnu.show.GameJFrame;

public class EnemyFile extends ElementObj{
	// private int attack = 1; // 攻击力（现已为基类属性）
	private int moveNum = 3; // 移动速度值
	// 剩下的等自己补充；愿意的话可以扩展出多种子弹：激光，导弹等。（玩家类就需要有子弹类型）


	public EnemyFile() {

	}
	
	// 对创建这个对象的过程进行封装,外界只需要传输必要的约定参数,返回值就是对象实体
	@Override
	public ElementObj createElement(String str) { // 自己定义字符串的规则：x，y
		String[] split = str.split(",");
		for (String str1 : split) {
			String[] split2 = str1.split(":"); // 0下标是x，y，f 1下标是值
			switch (split2[0]) {
				case "x":
					this.setX(Integer.parseInt(split2[1]));
					break;
				case "y":
					this.setY(Integer.parseInt(split2[1]));
					break;
				// 通过图片加载器获取子弹图片
				case "n":
					ImageIcon icon2 = GameLoad.imgMap.get(split2[1]);
					this.setW(icon2.getIconWidth());
					this.setH(icon2.getIconHeight());
					this.setIcon(icon2);
					break;
			}
		}
		this.setAttack(1);
		return this;
	}
	
	@Override
	public void showElement(Graphics g) {
		g.drawImage(this.getIcon().getImage(),
				this.getX(), this.getY(),
				this.getW(), this.getH(), null);
	}
	
	/**
	 * @待解决问题 边界值
	 */
	@Override
	protected void move(long gameTime) {
		if (this.getY() >= GameJFrame.GameY) {
			this.setLive(false);
			this.setCanRmove(true);
			return;
		}
		this.setY(this.getY() + this.moveNum);
	}

	// /**
	// * @说明 获取方法
	// * @return
	// */
	// public int getAttack() {
	// return attack;
	// }

	// public void setAttack(int attack) {
	// this.attack = attack;
	// }
	
	/**
	 * 对于子弹来说：1.出边界 2.碰撞 3.玩家放保险
	 * 子弹死亡
	 * 处理方式为，当达到死亡的条件时，只进行修改死亡状态的操作。
	 */
	
	
	
}
